home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / jfklib.zip / DEFKERN.CPP < prev    next >
Text File  |  1991-05-11  |  6KB  |  329 lines

  1. /*
  2.     DEFKERN.CPP - (C) 1990 by Joachim Kainz 'On a mission from Bhudda'
  3. */
  4.     #include <windows.hpp>
  5.  
  6.     METHOD WINDOW::WndKernelProc (WORD wMsg, WORD wParam, long lParam)
  7.     {
  8.         switch(wMsg) {
  9.  
  10.           case WM_NULL:
  11.             return WMNull ();
  12.  
  13.           case WM_CREATE:
  14.             return WMCreate ((LPCREATESTRUCT) lParam);
  15.  
  16.           case WM_DESTROY:
  17.              return WMDestroy ();
  18.  
  19.           case WM_MOVE:
  20.             return WMMove (MAKEPOINT (lParam));
  21.  
  22.           case WM_SIZE:
  23.             return WMSize (wParam, LOWORD (lParam), HIWORD (lParam));
  24.  
  25.           case WM_ACTIVATE:
  26.             return WMActivate (
  27.                         wParam,
  28.                         HIWORD (lParam),
  29.                         LOWORD (lParam)
  30.                    );
  31.  
  32.           case WM_SETFOCUS:
  33.             return WMSetFocus (wParam);
  34.  
  35.           case WM_KILLFOCUS:
  36.             return WMKillFocus (wParam);
  37.  
  38.           case WM_ENABLE:
  39.             return WMEnable (wParam);
  40.  
  41.           case WM_SETREDRAW:
  42.             return WMSetRedraw (wParam);
  43.  
  44.           case WM_SETTEXT:
  45.             return WMSetText ((LPSTR) lParam);
  46.  
  47.           case WM_GETTEXT:
  48.             return WMGetText ((LPSTR) lParam, wParam);
  49.  
  50.           case WM_GETTEXTLENGTH:
  51.             return WMGetTextLength ();
  52.  
  53.           case WM_PAINT:
  54.             return WMPaint ();
  55.  
  56.           case WM_CLOSE:
  57.             return WMClose ();
  58.  
  59.           case WM_QUERYENDSESSION:
  60.             return WMQueryEndSession ();
  61.  
  62.           case WM_QUERYOPEN:
  63.             return WMQueryOpen ();
  64.  
  65.           case WM_ERASEBKGND:
  66.             return WMEraseBkgnd (wParam);
  67.  
  68.           case WM_SYSCOLORCHANGE:
  69.             return WMSysColorChange ();
  70.  
  71.           case WM_ENDSESSION:
  72.             return WMEndSession (wParam);
  73.  
  74.           case WM_SHOWWINDOW:
  75.             return WMShowWindow (wParam, lParam);
  76.  
  77.           case WM_CTLCOLOR:
  78.             return WMCtlColor (
  79.                         wParam,
  80.                         HIWORD (lParam),
  81.                         LOWORD (lParam)
  82.                    );
  83.  
  84.           case WM_WININICHANGE:
  85.             return WMWinIniChange ((LPSTR) lParam);
  86.  
  87.           case WM_DEVMODECHANGE:
  88.             return WMDevModeChange ((LPSTR) lParam);
  89.  
  90.           case WM_ACTIVATEAPP:
  91.             return WMActivateApp    (wParam, LOWORD (wParam));
  92.  
  93.           case WM_FONTCHANGE:
  94.             return WMFontChange ();
  95.  
  96.           case WM_TIMECHANGE:
  97.             return WMTimeChange ();
  98.  
  99.           case WM_CANCELMODE:
  100.             return WMCancelMode ();
  101.  
  102.           case WM_SETCURSOR:
  103.             return WMSetCursor (
  104.                         wParam,
  105.                         LOWORD (lParam),
  106.                         HIWORD (lParam)
  107.                    );
  108.  
  109.           case WM_MOUSEACTIVATE:
  110.             return WMMouseActivate (
  111.                         wParam,
  112.                         LOWORD (lParam),
  113.                         HIWORD (lParam)
  114.                    );
  115.  
  116.           case WM_CHILDACTIVATE:
  117.             return WMChildActivate ();
  118.  
  119.           case WM_QUEUESYNC:
  120.             return WMQueueSync ();
  121.  
  122.           case WM_GETMINMAXINFO:
  123.             return WMGetMinMaxInfo ((LPRECT) lParam);
  124.  
  125.           case WM_PAINTICON:
  126.             return WMPaintIcon (wParam);
  127.  
  128.           case WM_ICONERASEBKGND:
  129.             return WMIconEraseBkgnd (wParam);
  130.  
  131.           case WM_NEXTDLGCTL:
  132.             return WMNextDlgCtl     (wParam, lParam != 0l);
  133.  
  134.           case WM_SPOOLERSTATUS:
  135.             return WMSpoolerStatus  (LOWORD (lParam));
  136.  
  137.           case WM_DRAWITEM:
  138.             return WMDrawItem ((LPDRAWITEMSTRUCT) lParam);
  139.  
  140.           case WM_MEASUREITEM:
  141.             return WMMeasureItem ((LPMEASUREITEMSTRUCT) lParam);
  142.  
  143.           case WM_DELETEITEM:
  144.             return WMDeleteItem ((LPDELETEITEMSTRUCT) lParam);
  145.  
  146.           case WM_VKEYTOITEM:
  147.             return WMVKeyToItem (
  148.                         wParam,
  149.                         HIWORD (lParam),
  150.                         LOWORD (lParam)
  151.                    );
  152.  
  153.           case WM_CHARTOITEM:
  154.             return WMCharToItem (
  155.                         wParam,
  156.                         HIWORD (lParam),
  157.                         LOWORD (lParam)
  158.                    );
  159.  
  160.           case WM_SETFONT:
  161.             return WMSetFont (wParam, (BOOL) lParam);
  162.  
  163.           case WM_GETFONT:
  164.             return WMGetFont ();
  165.  
  166.         }
  167.  
  168.         return DefWindowProc (GetWindowHandle (), wMsg, wParam, lParam);
  169.     }
  170.  
  171.     METHOD WINDOW::WMCreate(LPCREATESTRUCT lpCreate)
  172.     {
  173.         wCount ++;
  174.  
  175.         return 0l;
  176.     }
  177.  
  178.     METHOD WINDOW::WMDestroy()
  179.     {
  180.         if(!(--wCount))
  181.             PostQuitMessage(0);
  182.  
  183.         SetWindowLong (
  184.             GetWindowHandle (),
  185.             GWL_WNDPROC,
  186.             (long) lpDefWndProc
  187.         );
  188.  
  189.         hWnd = 0;
  190.  
  191.         return 0l;
  192.     }
  193.  
  194.     METHOD WINDOW::WMActivate(
  195.                         WORD wActivate,
  196.                         BOOL bMin,
  197.                         HWND hLast
  198.                      )
  199.     {
  200.         if(wActivate)
  201.             SetFocus (GetWindowHandle ());
  202.  
  203.         return 0l;
  204.     }
  205.  
  206.     METHOD WINDOW::WMSetRedraw(BOOL bRedrawFlag)
  207.     {
  208.         return DefWindowProc (GetWindowHandle (), WM_SETREDRAW, bRedrawFlag, NULL);
  209.     }
  210.  
  211.     METHOD WINDOW::WMSetText(LPSTR lpText)
  212.     {
  213.         return DefWindowProc(GetWindowHandle (), WM_SETTEXT, NULL, (long) lpText);
  214.     }
  215.  
  216.     METHOD WINDOW::WMGetText(LPSTR lpText, WORD wMax)
  217.     {
  218.         return DefWindowProc(GetWindowHandle (), WM_GETTEXT, wMax, (long) lpText);
  219.     }
  220.  
  221.     METHOD WINDOW::WMGetTextLength()
  222.     {
  223.         return DefWindowProc(GetWindowHandle (), WM_GETTEXTLENGTH, NULL, NULL);
  224.     }
  225.  
  226.     METHOD WINDOW::WMPaint()
  227.     {
  228.         PAINTSTRUCT ps;
  229.  
  230.         BeginPaint(GetWindowHandle (), &ps);
  231.         EndPaint  (GetWindowHandle (), &ps);
  232.  
  233.         return 0l;
  234.     }
  235.  
  236.     METHOD WINDOW::WMClose()
  237.     {
  238.         DestroyWindow (GetWindowHandle ());
  239.  
  240.         return 0l;
  241.     }
  242.  
  243.     METHOD WINDOW::WMEraseBkgnd(HANDLE hDC)
  244.     {
  245.         return DefWindowProc(GetWindowHandle (), WM_ERASEBKGND, hDC, NULL);
  246.     }
  247.  
  248.     METHOD WINDOW::WMShowWindow(BOOL bShow, long lShow)
  249.     {
  250.         return DefWindowProc(
  251.                     GetWindowHandle (),
  252.                     WM_SHOWWINDOW,
  253.                     bShow,
  254.                     lShow
  255.                );
  256.     }
  257.  
  258.     METHOD WINDOW::WMCtlColor(
  259.                         HDC  hCtlDC,
  260.                         WORD wCtlStyle,
  261.                         HWND hCtl
  262.                      )
  263.     {
  264.         return DefWindowProc(
  265.                     GetWindowHandle (),
  266.                     WM_CTLCOLOR,
  267.                     hCtlDC,
  268.                     MAKELONG(hCtl, wCtlStyle)
  269.                );
  270.     }
  271.  
  272.     METHOD WINDOW::WMCancelMode()
  273.     {
  274.         return DefWindowProc(GetWindowHandle (), WM_CANCELMODE, NULL, NULL);
  275.     }
  276.  
  277.     METHOD WINDOW::WMSetCursor(
  278.                         HCURSOR hCursorOwner,
  279.                         WORD    wNCHitTest,
  280.                         WORD    wMouseMsg
  281.                      )
  282.     {
  283.         return DefWindowProc(
  284.                     GetWindowHandle (),
  285.                     WM_SETCURSOR,
  286.                     hCursorOwner,
  287.                     MAKELONG(wNCHitTest, wMouseMsg)
  288.                );
  289.     }
  290.  
  291.     METHOD WINDOW::WMMouseActivate(
  292.                         HWND hTopWnd,
  293.                         WORD NCHitTest,
  294.                         WORD wMouseMsg
  295.                      )
  296.     {
  297.         return DefWindowProc(
  298.                     GetWindowHandle (),
  299.                     WM_MOUSEACTIVATE,
  300.                     hTopWnd,
  301.                     wMouseMsg
  302.                );
  303.     }
  304.  
  305.     METHOD WINDOW::WMPaintIcon(BOOL bDraw)
  306.     {
  307.         return DefWindowProc(GetWindowHandle (), WM_PAINTICON, bDraw, NULL);
  308.     }
  309.  
  310.     METHOD WINDOW::WMIconEraseBkgnd(HDC hDC)
  311.     {
  312.         return DefWindowProc(
  313.                     GetWindowHandle (),
  314.                     WM_ICONERASEBKGND,
  315.                     hDC,
  316.                     NULL
  317.                );
  318.     }
  319.  
  320.     METHOD WINDOW::WMDrawItem(LPDRAWITEMSTRUCT lpDrawItem)
  321.     {
  322.         return DefWindowProc(
  323.                     GetWindowHandle (),
  324.                     WM_DRAWITEM,
  325.                     NULL,
  326.                     (long) lpDrawItem
  327.                );
  328.     }
  329.